package com.vrv.app;

import android.app.Application;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.Process;
import android.util.Log;

import com.lidroid.xutils.DbUtils;
import com.lidroid.xutils.DbUtils.DaoConfig;
import com.vrv.common.Constants;
import com.vrv.common.utils.AssetsDatabaseManager;

/**
 * 
 * @author 曹保利
 * 
 */
public class AppContext extends Application {

	public Context context = null;

	public static DbUtils db = null;
	
	@Override
	public void onCreate() {
		Log.d(Constants.TAG, "... Application onCreate... pid=" + Process.myPid());
		context = getApplicationContext();
		initDatabase();
	}

	/**
	 * 初始化数据库信息
	 */
	private void initDatabase() {

		// 将assets目录下的预置数据库copy到运行目录下获得一个可运行的临时数据库
		AssetsDatabaseManager.initManager(context);// 初始化，只需要调用一次
		AssetsDatabaseManager mg = AssetsDatabaseManager.getManager();// 获取管理对象，因为数据库需要通过管理对象才能够获取
		SQLiteDatabase tempdb = mg.getDatabase(Constants.DATABASE_NAME);// 通过管理对象获取数据库
		tempdb.close();

		// 初始化xUtils的db对象
		DaoConfig config = new DaoConfig(context);
		config.setDbName(Constants.DATABASE_NAME);
		config.setDbVersion(Constants.DB_VERSION);
		db = DbUtils.create(config);
		db.configAllowTransaction(true);
		db.configDebug(Constants.DEBUG);
		Log.v(Constants.TAG, "dbinfo:{path:" + db.getDatabase().getPath() + ",version:" + db.getDatabase().getVersion() + "}");
	}
}
